// 常量
using System;
namespace Constant;
{
    class ConstantAll
    {
        static void Main(string[] args)
        {
            /* 整数常量 */
            const int decimalConstant = 123; 
            const int hexConstant = 0x1A3F; // 等于十进制的 6719
            const int octalConstant = 0123; // 等于十进制的 83
            const int binaryConstant = 0b1011; // 等于十进制的 11
            const long longConstant = 123456789012345L;
            const uint unsignedIntConstant = 4294967295; // 最大的32位无符号整数
            const ulong unsignedLongConstant = 18446744073709551615; // 最大的64位无符号整数

            /* 浮点常量 */
            // 声明一个float类型的浮点常量
            const float floatConstant = 3.14159f; 
            // 声明一个double类型的浮点常量（如果不加后缀，默认为double类型）
            const double doubleConstant = 2.71828;
            // 使用浮点常量
            Console.WriteLine("The value of floatConstant is: " + floatConstant);
            Console.WriteLine("The value of doubleConstant is: " + doubleConstant);

            // 使用科学计数法表示的浮点常量
            const float floatScientific = 1.23E-4f; // 等同于 0.000123
            const double doubleScientific = 4.56E+7; // 等同于 45600000.0

            Console.WriteLine("The value of floatScientific is: " + floatScientific);
            Console.WriteLine("The value of doubleScientific is: " + doubleScientific);

            /* 字符常量 */ // 字符常量是括在单引号里
            // 转义序列码: \\=>\; \'=>'; \"=>"; \?=>?; \a=>Alert或bell; \b => 退格键（Backspace）;\f=>换页符（Form feed）;\n=>换行符（Newline）;
            // 转义序列码:  \r=>回车; \t=>水平制表符 tab; \v=>垂直制表符 tab; \ooo=>一到三位的八进制数; \xhh . . .=>一个或多个数字的十六进制数
            char letterA = 'A'; 
            /* 字符串常量 */
            string a = "hello, world";                  // hello, world
            string b = @"hello, world";               // hello, world
            string c = "hello \t world";               // hello     world
            string d = @"hello \t world";               // hello \t world
            string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
            string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
            string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
            string h = @"\\server\share\file.txt";      // \\server\share\file.txt
            string i = "one\r\ntwo\r\nthree";
            string j = @"one
            two
            three";
            /* 定义常量 */
            const int MyConstant = 42; // const <data_type> <constant_name> = value;
        }
    }
}